
//
//	cove.display.DisplayObject - 2011 July 6th
//
//	The DisplayObject class is the base class for all objects that can be placed on the display
//	list. The display list manages all objects displayed in Cove Player.
//
//-------------------------------------------------------------------------------------------------

var DisplayObject = cove.display.DisplayObject = cove.events.EventDispatcher.extend({
	
	_parent: null,
	_root: null,
	_stage: null,
	
	init: function() {
		this.addEventListener(Event.ENTER_FRAME, this._redraw);
		this._root = this;
	},
	
	_redraw: function(event) {
		xb.Element.setAttributes.call(event.currentTarget._htmlElement, {
			
		});
	},
	
	
//	Public properties
//-------------------------------------------------------------------------------------------------
	
	// The current accessibility options for this display object.
	get accessibilityProperties() {
		return; // AccessibilityProperties;
	},
	set accessibilityProperties(v) {
		
	},
	
	// Indicates the alpha transparency value of the object specified.
	get alpha() {
		return; // Number;
	},
	set alpha(v) {
		
	},
	
	// A value from the BlendMode class that specifies which blend mode to use.
	get blendMode() {
		return; // String;
	},
	set blendMode(v) {
		
	},
	
	// If set to true, Flash Player or Adobe AIR caches an internal bitmap representation of the display object.
	get cacheAsBitmap() {
		return; // Boolean;
	},
	set cacheAsBitmap(v) {
		
	},
	
	// An indexed array that contains each filter object currently associated with the display object.
	get filters() {
		return; // Array;
	},
	set filters(v) {
		
	},
	
	// Indicates the height of the display object, in pixels.
	height: 0,
	
	// Returns a LoaderInfo object containing information about loading the file to which this display object belongs.
	get loaderInfo() {
		return; // LoaderInfo;
	},
	
	// The calling display object is masked by the specified mask object.
	get mask() {
		return; // DisplayObject;
	},
	set mask(v) {
		
	},
	
	// Indicates the x coordinate of the mouse position, in pixels.
	get mouseX() {
		return; // Number;
	},
	
	// Indicates the y coordinate of the mouse position, in pixels.
	get mouseY() {
		return; // Number;
	},
	
	// Indicates the instance name of the DisplayObject.
	get name() {
		return; // String;
	},
	set name(v) {
		
	},
	
	// Specifies whether the display object is opaque with a certain background color.
	get opaqueBackground() {
		return; // Object;
	},
	set opaqueBackground(v) {
		
	},
	
	// Indicates the Container object that contains this display object.
	get parent() {
		return this._parent;
	},
	
	// For a display object in a loaded SWF file, the root property is the top-most display object in the portion of the display list's tree structure represented by that SWF file.
	get root() {
		return this._root;
	},
	
	// Indicates the rotation of the instance, in degrees, from its original orientation.
	get rotation() {
		return; // Number;
	},
	set rotation(v) {
		
	},
	
	// The current scaling grid that is in effect.
	get scale9Grid() {
		return; // Rectangle;
	},
	set scale9Grid(v) {
		
	},
	
	// Indicates the horizontal scale (percentage) of the object as applied from the registration point.
	get scaleX() {
		return; // Number;
	},
	set scaleX(v) {
		
	},
	
	// Indicates the vertical scale (percentage) of the object as applied from the registration point.
	get scaleY() {
		return; // Number;
	},
	set scaleY(v) {
		
	},
	
	// The scroll rectangle bounds of the display object.
	get scrollRect() {
		return; // Rectangle;
	},
	set scrollRect(v) {
		
	},
	
	// The Stage of the display object.
	get stage() {
		return this._stage;
	},
	
	// An object with properties pertaining to a display object's matrix, color transform, and pixel bounds.
	get transform() {
		return; // Transform;
	},
	set transform(v) {
		
	},
	
	// Whether or not the display object is visible.
	get visible() {
		return; // Boolean;
	},
	set visible(v) {
		
	},
	
	// Indicates the width of the display object, in pixels.
	width: 0,
	
	// Indicates the x coordinate of the DisplayObject instance relative to the local coordinates of the parent DisplayObjectContainer.
	x: 0,
	
	// Indicates the y coordinate of the DisplayObject instance relative to the local coordinates of the parent DisplayObjectContainer.
	y: 0,


//	Public methods
//-------------------------------------------------------------------------------------------------
	
	// Returns a rectangle that defines the area of the display object relative to the coordinate system of the targetCoordinateSpace object.
	getBounds: function(targetCoordinateSpace) {
		return; // Rectangle
	},
	
	// Returns a rectangle that defines the boundary of the display object, based on the coordinate system defined by the targetCoordinateSpace parameter, excluding any strokes on shapes.
	getRect: function(targetCoordinateSpace) {
		return; // Rectangle
	},
	
	// Converts the point object from the Stage (global) coordinates to the display object's (local) coordinates.
	globalToLocal: function(point) {
		return; // Point
	},
	
	// Evaluates the display object to see if it overlaps or intersects with the obj display object.
	hitTestObject: function(displayObject) {
		return; // Boolean
	},
	
	// Evaluates the display object to see if it overlaps or intersects with the point specified by the x and y parameters.
	hitTestPoint: function(x, y, shapeFlag) {
		return; // Boolean
	},
	
	// Converts the point object from the display object's (local) coordinates to the Stage (global) coordinates.
	localToGlobal: function(point) {
		return; // Point
	},
	
	// Returns a string representation of the class
	toString: function() {
		return '[object DisplayObject]';
	}
	
});


//	Events
//-------------------------------------------------------------------------------------------------

//	> added
//	Dispatched when a display object is added to the display list.

//	> addedToStage
//	Dispatched when a display object is added to the on stage display list, either directly or
//	through the addition of a sub tree in which the display object is contained.

//	> enterFrame
//	Dispatched when the playhead is entering a new frame.
 	 	
//	> removed
//	Dispatched when a display object is about to be removed from the display list.
 	 	
//	> removedFromStage
//	Dispatched when a display object is about to be removed from the display list, either directly
//	or through the removal of a sub tree in which the display object is contained.
 	 	
//	> render
//	Dispatched when the display list is about to be updated and rendered.
